/**
 * @params method {string} 方法名
 * @params url {string} 请求地址  例如：/login 配合baseURL组成完整请求地址
 * @params baseURL {string} 请求地址统一前缀
 * @params timeout {number} 请求超时时间 默认 30000
 * @params params {object}  get方式传参key值
 * @params headers {string} 指定请求头信息
 * @params withCredentials {boolean} 请求是否携带本地cookies信息默认开启
 * @params validateStatus {func} 默认判断请求成功的范围 200 - 300
 * @return {Promise}
 * 其他更多拓展参看axios文档后 自行拓展
 * 注意：params中的数据会覆盖method url 参数，所以如果指定了这2个参数则不需要在params中带入
*/

import axios from 'axios'
import { Toast } from 'antd-mobile';
// import { baseUrl} from './config'

// 配置
// axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=utf-8';
// axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
// axios.defaults.withCredentials = false;
axios.defaults.timeout = 10000;

// 请求前拦截
axios.interceptors.request.use(
    config => {
      return config;
    },
    err => {
      Toast.info('请求超时', 1.5);
      return Promise.reject(err);
    }
);
// 返回后拦截
axios.interceptors.response.use(
    response  => {
      //     if(response.data.code === '401' || response.data.code === 401) {
      //         console.log('已过期重新登陆', response.data.code);
      //         window.location.href = '/login';
      //         return Promise.reject(response);
      //     }
      return response ;
    },
    err => {
      return Promise.reject(err);
    }
);

export function get(url, params) {
  return new Promise((resolve, reject) => {
    axios.get(url, {params}).then(function (response) {
      resolve(response.data)
    })
        .catch(function (err) {
          reject(err)
        })
  })
}

export function post(url, params) {
  return new Promise((resolve, reject) => {
    axios.post(url, params).then(function (response) {
      resolve(response.data)
    })
        .catch(function (err) {
          reject(err)
        })
  })
}